Skip to main content

Duke MSCS

Program Overview

The CS and ECE programs have a fairly clear division of labor: CS focuses on research, ECE focuses on engineering. However, this is not entirely accurate -- many MSCS students also go into industry and land very good placements. MSCS offers great flexibility in course selection. You need 10 courses to graduate. If you choose the project or thesis track, you only need 4 CS-numbered courses; if you go course-only, you need 6 CS courses. Duke CS also has a dedicated course for LeetCode grinding and interview prep, taught by industry professionals who guide you through LeetCode problems. If you want more job-search-related courses, you can also look into ECE offerings.

OS / Network / Algorithm / Web Full Stack / Distributed System / Compiler / Architecture / Security -- all the essential courses are offered. The program is normally 2 years, with a typical course load of 3-3-3-1. For the first three semesters, tuition is the same regardless of how many courses you take; the last semester is charged per course.

Admission Data Points

The historical admission rate is 15%, though the program has been expanding recently. GPA, GRE, and TOEFL scores are heavily weighted. The cohort is mainly US undergrads, with both CS and DS undergraduate backgrounds.

  1. SJTU CS undergrad, rank 2 (GPA 93+), TOEFL 110, GRE 328
  2. SJTU-UMich CS undergrad (SJTU GPA 3.8, UMich GPA 3.97)
  3. OSU CS undergrad, GPA 3.98, two years of TA experience
  4. University of Nottingham Ningbo CS undergrad, GPA 3.97
  5. Indian undergrad, GPA 9.28, Google SDE intern in India + one year Google full-time experience
  6. Vanderbilt University CS+Math undergrad, GPA 3.922
  7. Wellesley College CS undergrad, GPA 3.78

Job Outcomes & Data Points

Diversity is maxed out. There are people who landed at Microsoft, Adobe, and Salesforce. Intra-school competition is basically zero. At the same time, the school's reputation is enough to get you past the resume screening bar at FB, Google, and other big tech companies. After that, it's up to the individual -- big tech interviews are essentially: turn on the camera, sit down, and solve problems.

A 22Fall enrolled student said that the Duke MSCS title is more than sufficient. It comes down to personal LeetCode grinding, networking ability, and luck. The job search and LeetCode grinding atmosphere is admittedly not as strong as at UCSD CS75 or Gatech MSCS and other large public programs, but "in 22Fall, everyone who worked hard on LeetCode, mock interviews, and actively sought internal referrals landed offers. One classmate even originally planned to pursue a PhD, switched to job hunting last minute, had only research experience with no internships, and still landed at Google." In terms of cost-effectiveness, it's not as good as CS75 and Gatech MSCS, but there are precedents of being able to pivot to a PhD or fall back on industry. Speaking of cost-effectiveness, everyone's first reaction to Duke is that it's too expensive. Duke's course selection is flexible, and although tuition is high, you can take courses in a 3+3+4 pattern, with the last semester spent affiliated with the school, totaling around $90k. TA positions are very easy to get, paying $6,200 per semester. There are also on-campus work-study opportunities at the library, dining hall, etc., paying about $1,000/month.

  1. UCI CS undergrad, no internship, landed Meta SWE intern
  2. Indian CS undergrad, one year Google full-time, landed BotBuilt Machine Learning Intern
  3. Vanderbilt University CS+Math undergrad, had PwC and Sohu short-term internships, landed Salesforce SWE intern
  4. University of Edinburgh CS undergrad, had MLE internship, landed Syngenta Software Engineer Intern
  5. Wellesley College CS undergrad, had product manager internship, landed Meta SWE

RA and PhD Transfer

As long as you find a professor willing to let you join their group, you have a good chance. Most CS department professors recruit new members from the MSCS program every year. Once a professor agrees, you can transfer to the PhD program. A significant number of students around have transferred to the Duke CS PhD.

Duke MSCS is inherently a research-oriented program. Due to its small and selective nature, it offers better research group opportunities and is more PhD-transfer-friendly than UCSD CS75, Gatech MSCS, and other large public programs. (From a 22Fall student who successfully transferred to PhD -- he had offers from Gatech MSCS and Cornell main campus CS MEng at the time. His girlfriend went to CS75 and reported that it was crowded and competitive, and most PhD-oriented students gave up.) Additionally, the two years at Duke MSCS can explicitly count toward PhD time, so a combined MS-PhD of 4-5 years is a great deal.

Course Reviews

  1. CPS 510 Operating System Professor: Matthew Lentz (graduate level, more abstract) / Danyang Zhuo (undergraduate OS, clearer explanations) Course content: Follows UW CSE 451 teaching OSTEP (x86), assignments follow MIT 6.828 (xv6 RISC-V). There's a gap between the two that requires self-study to bridge. Assignments: A grading script is provided each time; as long as everything passes before submission, it's a perfect score. Project topics are self-chosen, difficulty varies. Exams: A4 cheatsheet allowed (double-sided), mostly short-answer questions, no coding. Overall: If you haven't taken OS as an undergrad, keeping up is challenging and requires significant outside study. Putting in a full semester of hard work yields great rewards.

  2. CPS 514 Advanced Computer Networks (ECE 558) Professor: Bruce Maggs / Xiaowei Yang Course content: First half covers traditional networks, second half involves distributed systems. Lots of knowledge points. Assignments: You can go to OH and ask tons of questions. Bruce will give you answers directly, significantly improving exam accuracy. Exams: Multiple choice with +2/-2 scoring -- wrong answers cost double, so be very careful. Exam content is hard to predict. Project: A bunch of past projects are provided; you can do whatever you want. Semester coding volume is limited; learning is mostly self-directed. Overall: The professors know a lot but lecture casually. Knowledge points are extensive, review load is heavy, and exam pressure is high.

  3. CPS 590 Advanced Web App Development (Dennis Quan) Professor: Dennis Quan (highly recommended, rich industry experience) Course content: TypeScript JS core concepts (closure, scoping, promise) Vue + Express + MongoDB + Socket.io Automated testing (Playwright) Load balancing (nginx), CI/CD (GitLab), Docker, TLS Authentication, authorization, Cookie, Session Assignments: 5 assignments, progressively increasing difficulty. Exams: Weekly quizzes, not easy later on, need to keep up. Project: Final project direction is clear, 4 types to choose from, ties together everything learned in the course. Overall: Clear logic, aligned with industry practices. Dennis is an exceptional lecturer -- well worth taking.

  4. CPS 512 Distributed Systems Professor: Danyang Zhuo Course content: Each class requires reading a paper and writing a response; class content relates to the papers. Project: You need to implement a distributed system on your own. Overall: Research-oriented, suitable for students who want to deeply study distributed systems.